package com.mths.client.controller;

import java.util.List;

import com.google.gwt.user.client.rpc.AsyncCallback;
import com.mths.client.dto.DocClassDTO;
import com.mths.client.dto.DocMetaSaveDTO;
import com.mths.client.dto.DocMetaSearchDTO;
import com.mths.client.dto.DocTypeDTO;
import com.mths.client.dto.MetaDataDTO;
import com.mths.client.dto.MetaParamDTO;
import com.mths.client.util.ListItem;

public interface DocumentControllerAsync {

	void saveMetaData(MetaDataDTO dto, AsyncCallback<Boolean> callback);

	void loadMetaDatas(MetaDataDTO dto, AsyncCallback<List<MetaDataDTO>> callback);

	void saveDocClass(DocClassDTO dto, AsyncCallback<Boolean> callback);

	void loadDocClassTable(DocClassDTO dto, AsyncCallback<List<DocClassDTO>> callback);

	void loadDocMetaDataList(String docTypeOid, AsyncCallback<DocMetaSearchDTO> callback);

	void saveDocMetaDataList(DocMetaSaveDTO dto, AsyncCallback<Void> callback);

	void loadMetaDataTypeCombo(String arg, AsyncCallback<List<ListItem>> callback);

	void saveMetaParam(MetaParamDTO dto, AsyncCallback<Boolean> asyncCallback);

	void loadMetaParamList(String metaOid, AsyncCallback<List<MetaParamDTO>> asyncCallback);

	void loadDocClassCombo(String string, AsyncCallback<List<ListItem>> callback);

	void loadDocTypeList(String docClassOid, AsyncCallback<List<DocTypeDTO>> asyncCallback);

	void saveDocType(DocTypeDTO dto, AsyncCallback<Void> callback);

	void loadDocTypeCombo(String string, AsyncCallback<List<ListItem>> asyncCallback);

	void loadMeataWidgetByDocType(String docTypeOid, AsyncCallback<List<MetaDataDTO>> asyncCallback);

}
